[INFO] fetching crate minidsp 0.1.4...
[INFO] fixing minidsp-0.1.4 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] extracting crate minidsp 0.1.4 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate minidsp 0.1.4
[INFO] finished tweaking crates.io crate minidsp 0.1.4
[INFO] tweaked toml for crates.io crate minidsp 0.1.4 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate minidsp 0.1.4 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate minidsp 0.1.4 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `hidapi` dependency)
[INFO] [stderr] warning: `minidsp` (manifest) generated 1 warning
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b987106050d1e583ad6f4387989cf2bab871d2b61473f5d90c426fb6f7697c76
[INFO] running `Command { std: "docker" "start" "b987106050d1e583ad6f4387989cf2bab871d2b61473f5d90c426fb6f7697c76", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b987106050d1e583ad6f4387989cf2bab871d2b61473f5d90c426fb6f7697c76" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b987106050d1e583ad6f4387989cf2bab871d2b61473f5d90c426fb6f7697c76", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b987106050d1e583ad6f4387989cf2bab871d2b61473f5d90c426fb6f7697c76" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   tokio v1.15.0 removed features: winapi
[INFO] [stderr] 
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `hidapi` dependency)
[INFO] [stderr] warning: `minidsp` (manifest) generated 1 warning
[INFO] [stderr]    Compiling proc-macro2 v1.0.36
[INFO] [stderr]    Compiling syn v1.0.85
[INFO] [stderr]    Compiling libc v0.2.112
[INFO] [stderr]    Compiling memchr v2.4.1
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking pin-project-lite v0.2.8
[INFO] [stderr]    Compiling futures-core v0.3.19
[INFO] [stderr]     Checking bytes v1.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.133
[INFO] [stderr]     Checking futures-sink v0.3.19
[INFO] [stderr]     Checking itoa v1.0.1
[INFO] [stderr]    Compiling futures-task v0.3.19
[INFO] [stderr]    Compiling futures-channel v0.3.19
[INFO] [stderr]    Compiling serde v1.0.133
[INFO] [stderr]    Compiling futures-util v0.3.19
[INFO] [stderr]    Compiling typenum v1.15.0
[INFO] [stderr]    Compiling generic-array v0.14.5
[INFO] [stderr]     Checking futures-io v0.3.19
[INFO] [stderr]     Checking slab v0.4.5
[INFO] [stderr]     Checking tinyvec_macros v0.1.0
[INFO] [stderr]    Compiling httparse v1.5.1
[INFO] [stderr]     Checking tinyvec v1.5.1
[INFO] [stderr]     Checking matches v0.1.9
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking unicode-bidi v0.3.7
[INFO] [stderr]    Compiling rustversion v1.0.6
[INFO] [stderr]     Checking form_urlencoded v1.0.1
[INFO] [stderr]     Checking tracing-core v0.1.21
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.16
[INFO] [stderr]    Compiling serde_json v1.0.74
[INFO] [stderr]     Checking http v0.2.6
[INFO] [stderr]    Compiling indexmap v1.8.0
[INFO] [stderr]     Checking opaque-debug v0.3.0
[INFO] [stderr]     Checking cpufeatures v0.2.1
[INFO] [stderr]    Compiling cc v1.0.72
[INFO] [stderr]    Compiling jetscii v0.5.1
[INFO] [stderr]     Checking tower-service v0.3.1
[INFO] [stderr]    Compiling pkg-config v0.3.24
[INFO] [stderr]     Checking ryu v1.0.9
[INFO] [stderr]     Checking regex-syntax v0.6.25
[INFO] [stderr]    Compiling anyhow v1.0.52
[INFO] [stderr]    Compiling schemars v0.8.8
[INFO] [stderr]    Compiling quote v1.0.14
[INFO] [stderr]     Checking want v0.3.0
[INFO] [stderr]     Checking aho-corasick v0.7.18
[INFO] [stderr]     Checking base64 v0.13.0
[INFO] [stderr]    Compiling heck v0.4.0
[INFO] [stderr]     Checking termcolor v1.1.2
[INFO] [stderr]     Checking httpdate v1.0.2
[INFO] [stderr]     Checking dyn-clone v1.0.4
[INFO] [stderr]    Compiling async-trait v0.1.52
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking mio v0.7.14
[INFO] [stderr]     Checking num_cpus v1.13.1
[INFO] [stderr]     Checking getrandom v0.2.4
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking socket2 v0.4.2
[INFO] [stderr]     Checking os_str_bytes v6.0.0
[INFO] [stderr]     Checking tower-layer v0.3.1
[INFO] [stderr]     Checking termcolor v0.3.6
[INFO] [stderr]     Checking rand_core v0.6.3
[INFO] [stderr]     Checking unicode-normalization v0.1.19
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking textwrap v0.14.2
[INFO] [stderr]     Checking strsim v0.10.0
[INFO] [stderr]     Checking riff v1.0.1
[INFO] [stderr]     Checking xmlparser v0.13.3
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking atomic_refcell v0.1.8
[INFO] [stderr]     Checking urlencoding v2.1.0
[INFO] [stderr]     Checking bimap v0.6.1
[INFO] [stderr]    Compiling hex-literal v0.3.4
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]     Checking hexplay v0.2.1
[INFO] [stderr]     Checking wav v1.0.0
[INFO] [stderr]     Checking assert_approx_eq v1.1.0
[INFO] [stderr]     Checking rand v0.8.4
[INFO] [stderr]    Compiling hidapi v1.3.2
[INFO] [stderr]     Checking idna v0.2.3
[INFO] [stderr]     Checking regex v1.5.4
[INFO] [stderr]     Checking env_logger v0.9.0
[INFO] [stderr]     Checking shellwords v1.1.0
[INFO] [stderr]     Checking http-body v0.4.4
[INFO] [stderr]    Compiling serde_derive_internals v0.25.0
[INFO] [stderr]    Compiling futures-macro v0.3.19
[INFO] [stderr]    Compiling tokio-macros v1.7.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.18
[INFO] [stderr]    Compiling thiserror-impl v1.0.30
[INFO] [stderr]    Compiling pin-project-internal v1.0.10
[INFO] [stderr]    Compiling strum_macros v0.23.1
[INFO] [stderr]    Compiling schemars_derive v0.8.8
[INFO] [stderr]    Compiling clap_derive v3.0.6
[INFO] [stderr]    Compiling strong-xml-derive v0.6.3
[INFO] [stderr]     Checking strong-xml v0.6.3
[INFO] [stderr]     Checking tokio v1.15.0
[INFO] [stderr]     Checking tracing v0.1.29
[INFO] [stderr]     Checking thiserror v1.0.30
[INFO] [stderr]     Checking strum v0.23.0
[INFO] [stderr]     Checking pin-project v1.0.10
[INFO] [stderr]     Checking clap v3.0.7
[INFO] [stderr]     Checking tokio-util v0.6.9
[INFO] [stderr]     Checking hyper v0.14.16
[INFO] [stderr]     Checking futures-executor v0.3.19
[INFO] [stderr]     Checking tower v0.4.11
[INFO] [stderr]     Checking tokio-stream v0.1.8
[INFO] [stderr]     Checking futures v0.3.19
[INFO] [stderr]     Checking url v2.2.2
[INFO] [stderr]     Checking tungstenite v0.16.0
[INFO] [stderr]     Checking url2 v0.0.6
[INFO] [stderr]     Checking tokio-tungstenite v0.16.1
[INFO] [stderr]     Checking minidsp-protocol v0.1.4
[INFO] [stderr]     Checking hyperlocal v0.8.0
[INFO] [stderr]     Checking minidsp v0.1.4 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/m2x4hd.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating src/bin/minidsp/main.rs from 2018 edition to 2021
[INFO] [stderr]    Migrating tests/m4x10hd.rs from 2018 edition to 2021
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 38.21s
[INFO] [stderr] crater-edition-check: minidsp v0.1.4 (/opt/rustwide/workdir) updating edition from 2018 to 2021
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `hidapi` dependency)
[INFO] [stderr] warning: `minidsp` (manifest) generated 1 warning
[INFO] [stderr]     Checking tokio v1.15.0
[INFO] [stderr]     Checking hyper v0.14.16
[INFO] [stderr]     Checking tokio-util v0.6.9
[INFO] [stderr]     Checking tokio-tungstenite v0.16.1
[INFO] [stderr]     Checking tower v0.4.11
[INFO] [stderr]     Checking tokio-stream v0.1.8
[INFO] [stderr]     Checking hyperlocal v0.8.0
[INFO] [stderr]     Checking minidsp v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:248:18
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn input(&self, index: usize) -> Result<Input> {
[INFO] [stdout]     |                  ^^^^^                          ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn input(&self, index: usize) -> Result<Input<'_>> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:260:19
[INFO] [stdout]     |
[INFO] [stdout] 260 |     pub fn output(&self, index: usize) -> Result<Output> {
[INFO] [stdout]     |                   ^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 260 |     pub fn output(&self, index: usize) -> Result<Output<'_>> {
[INFO] [stdout]     |                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:309:17
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn _channel(&self) -> (&MiniDSP, Option<&device::Gate>, &'static [u16]);
[INFO] [stdout]     |                 ^^^^^      ^^^^^^^^         ^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                 |          ||
[INFO] [stdout]     |                 |          |the same lifetime is hidden here
[INFO] [stdout]     |                 |          the same lifetime is elided here
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn _channel(&self) -> (&MiniDSP<'_>, Option<&device::Gate>, &'static [u16]);
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |     fn _channel(&self) -> (&MiniDSP, Option<&Gate>, &'static [u16]) {
[INFO] [stdout]     |                 ^^^^^      ^^^^^^^^         ^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                 |          ||
[INFO] [stdout]     |                 |          |the same lifetime is hidden here
[INFO] [stdout]     |                 |          the same lifetime is elided here
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 382 |     fn _channel(&self) -> (&MiniDSP<'_>, Option<&Gate>, &'static [u16]) {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:444:17
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn _channel(&self) -> (&MiniDSP, Option<&Gate>, &'static [u16]) {
[INFO] [stdout]     |                 ^^^^^      ^^^^^^^^         ^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                 |          ||
[INFO] [stdout]     |                 |          |the same lifetime is hidden here
[INFO] [stdout]     |                 |          the same lifetime is elided here
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn _channel(&self) -> (&MiniDSP<'_>, Option<&Gate>, &'static [u16]) {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:248:18
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn input(&self, index: usize) -> Result<Input> {
[INFO] [stdout]     |                  ^^^^^                          ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 248 |     pub fn input(&self, index: usize) -> Result<Input<'_>> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:260:19
[INFO] [stdout]     |
[INFO] [stdout] 260 |     pub fn output(&self, index: usize) -> Result<Output> {
[INFO] [stdout]     |                   ^^^^^                          ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 260 |     pub fn output(&self, index: usize) -> Result<Output<'_>> {
[INFO] [stdout]     |                                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:309:17
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn _channel(&self) -> (&MiniDSP, Option<&device::Gate>, &'static [u16]);
[INFO] [stdout]     |                 ^^^^^      ^^^^^^^^         ^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                 |          ||
[INFO] [stdout]     |                 |          |the same lifetime is hidden here
[INFO] [stdout]     |                 |          the same lifetime is elided here
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 309 |     fn _channel(&self) -> (&MiniDSP<'_>, Option<&device::Gate>, &'static [u16]);
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |     fn _channel(&self) -> (&MiniDSP, Option<&Gate>, &'static [u16]) {
[INFO] [stdout]     |                 ^^^^^      ^^^^^^^^         ^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                 |          ||
[INFO] [stdout]     |                 |          |the same lifetime is hidden here
[INFO] [stdout]     |                 |          the same lifetime is elided here
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 382 |     fn _channel(&self) -> (&MiniDSP<'_>, Option<&Gate>, &'static [u16]) {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:444:17
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn _channel(&self) -> (&MiniDSP, Option<&Gate>, &'static [u16]) {
[INFO] [stdout]     |                 ^^^^^      ^^^^^^^^         ^^^^^ the same lifetime is elided here
[INFO] [stdout]     |                 |          ||
[INFO] [stdout]     |                 |          |the same lifetime is hidden here
[INFO] [stdout]     |                 |          the same lifetime is elided here
[INFO] [stdout]     |                 the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 444 |     fn _channel(&self) -> (&MiniDSP<'_>, Option<&Gate>, &'static [u16]) {
[INFO] [stdout]     |                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.84s
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating Cargo.toml from 2018 edition to 2021
[INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo.
[INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously.
[INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html
[INFO] [stderr] When building the following dependencies, the given features will no longer be used:
[INFO] [stderr] 
[INFO] [stderr]   tokio v1.15.0 removed features: winapi
[INFO] [stderr] 
[INFO] [stderr] warning: Cargo.toml: `default_features` is deprecated in favor of `default-features` and will not work in the 2024 edition
[INFO] [stderr] (in the `hidapi` dependency)
[INFO] [stderr] warning: `minidsp` (manifest) generated 1 warning
[INFO] [stderr]     Checking minidsp v0.1.4 (/opt/rustwide/workdir)
[INFO] [stderr]    Migrating src/lib.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed src/transport/hid/stream.rs (1 fix)
[INFO] [stderr]        Fixed src/transport/multiplexer.rs (1 fix)
[INFO] [stderr]        Fixed src/lib.rs (1 fix)
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tcp_server.rs:86:37
[INFO] [stdout]     |
[INFO] [stdout]  84 |             while let Some(frame) = stream.next().await {
[INFO] [stdout]     |                            -----                  -----
[INFO] [stdout]     |                            |                      |
[INFO] [stdout]     |                            |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `frame` calls a custom destructor
[INFO] [stdout]     |                            `frame` will be dropped later as of Edition 2024
[INFO] [stdout]  85 |                 if let Ok(frame) = frame {
[INFO] [stdout]  86 |                     if let Err(e) = stream_tx.send(frame) {
[INFO] [stdout]     |                                -    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |    |
[INFO] [stdout]     |                                |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                |    up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `e` calls a custom destructor
[INFO] [stdout]     |                                `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  89 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `frame` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tcp_server.rs:84:37
[INFO] [stdout]     |
[INFO] [stdout]  84 |             while let Some(frame) = stream.next().await {
[INFO] [stdout]     |                            -----    ^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |        |             |
[INFO] [stdout]     |                            |        |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |        |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `frame` calls a custom destructor
[INFO] [stdout]     |                            `frame` will be dropped later as of Edition 2024
[INFO] [stdout]  85 |                 if let Ok(frame) = frame {
[INFO] [stdout]  86 |                     if let Err(e) = stream_tx.send(frame) {
[INFO] [stdout]     |                                -
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `e` calls a custom destructor
[INFO] [stdout]     |                                `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  90 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `frame` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tcp_server.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 |             while let Some(frame) = sink_rx.next().await {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                     |              |
[INFO] [stdout]     |                                     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                     up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 101 |                 sink.send(frame).await?;
[INFO] [stdout]     |                 -----------------------
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 |                `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 102 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/multiplexer.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let mut writer = this.write.lock().await;
[INFO] [stdout]     |                 ----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `writer` calls a custom destructor
[INFO] [stdout]     |                 `writer` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |             rx.await.map_err(|_| MiniDSPError::TransportClosed)?
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 108 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.19/src/oneshot.rs:478:1
[INFO] [stdout]     |
[INFO] [stdout] 478 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `writer` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/mock/mod.rs:80:35
[INFO] [stdout]     |
[INFO] [stdout]  80 |         while let Some(command) = commands_rx.next().await {
[INFO] [stdout]     |                        -------    ^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                        |          |                  |
[INFO] [stdout]     |                        |          |                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |          |                  `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                        |          up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        `command` calls a custom destructor
[INFO] [stdout]     |                        `command` will be dropped later as of Edition 2024
[INFO] [stdout]  81 |             let mut device = device.lock().await;
[INFO] [stdout]     |                 ----------   -------------------
[INFO] [stdout]     |                 |            |             |
[INFO] [stdout]     |                 |            |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 |            |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 |            `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 |            `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 `device` calls a custom destructor
[INFO] [stdout]     |                 `device` will be dropped later as of Edition 2024
[INFO] [stdout]  82 |             let response = device.execute(&command);
[INFO] [stdout]     |                 --------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `response` calls a custom destructor
[INFO] [stdout]     |                 `response` will be dropped later as of Edition 2024
[INFO] [stdout]  83 |             if let Some(duration) = device.response_delay {
[INFO] [stdout]  84 |                 tokio::time::sleep(duration).await;
[INFO] [stdout]     |                 ----------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout]  85 |             }
[INFO] [stdout]  86 |             responses_tx.send(response).await.unwrap();
[INFO] [stdout]     |             ---------------------------------
[INFO] [stdout]     |             |                           |
[INFO] [stdout]     |             |                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |             |                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |             `#4` will be dropped later as of Edition 2024
[INFO] [stdout]  87 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `command` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `device` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/time/driver/entry.rs:622:1
[INFO] [stdout]     |
[INFO] [stdout] 622 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client.rs:39:14
[INFO] [stdout]     |
[INFO] [stdout]  34 |         let mut svc = ServiceBuilder::new()
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `svc` calls a custom destructor
[INFO] [stdout]     |             `svc` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  39 |             .await
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  53 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/time/driver/entry.rs:622:1
[INFO] [stdout]     |
[INFO] [stdout] 622 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `svc` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/hub.rs:55:45
[INFO] [stdout]     |
[INFO] [stdout]  52 |                 while let Some(frame) = device_rx.next().await {
[INFO] [stdout]     |                                -----                     -----
[INFO] [stdout]     |                                |                         |
[INFO] [stdout]     |                                |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                `frame` calls a custom destructor
[INFO] [stdout]     |                                `frame` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |                             if let Err(e) = read_tx.send(frame) {
[INFO] [stdout]     |                                        -    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                        |    |
[INFO] [stdout]     |                                        |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                        |    up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                        `e` calls a custom destructor
[INFO] [stdout]     |                                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  60 |                         }
[INFO] [stdout]     |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `frame` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/hub.rs:52:41
[INFO] [stdout]     |
[INFO] [stdout]  52 |                 while let Some(frame) = device_rx.next().await {
[INFO] [stdout]     |                                -----    ^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                |        |                |
[INFO] [stdout]     |                                |        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                |        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                |        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `frame` calls a custom destructor
[INFO] [stdout]     |                                `frame` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |                             if let Err(e) = read_tx.send(frame) {
[INFO] [stdout]     |                                        -
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        `e` calls a custom destructor
[INFO] [stdout]     |                                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 |                         Err(e) => {
[INFO] [stdout]     |                             -
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  67 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `frame` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/hub.rs:76:45
[INFO] [stdout]     |
[INFO] [stdout]  76 |                     while let Some(frame) = send_rx.next().await {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                             |              |
[INFO] [stdout]     |                                             |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  77 |                         let res = device_tx.send(frame).await;
[INFO] [stdout]     |                             ---   ---------------------------
[INFO] [stdout]     |                             |     |                     |
[INFO] [stdout]     |                             |     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                             |     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             |     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             |     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             `res` calls a custom destructor
[INFO] [stdout]     |                             `res` will be dropped later as of Edition 2024
[INFO] [stdout]  78 |                         if let Err(e) = res {
[INFO] [stdout]     |                                    -
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    `e` calls a custom destructor
[INFO] [stdout]     |                                    `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  82 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `res` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/utils/recorder.rs:56:35
[INFO] [stdout]     |
[INFO] [stdout]  56 |             while let Some(msg) = rx.next().await {
[INFO] [stdout]     |                            ---    ^^^^^^^^^^-----
[INFO] [stdout]     |                            |      |         |
[INFO] [stdout]     |                            |      |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |      |         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `msg` calls a custom destructor
[INFO] [stdout]     |                            `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  60 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/logging.rs:42:39
[INFO] [stdout]     |
[INFO] [stdout]  42 |                 while let Some(msg) = log_rx.next().await {
[INFO] [stdout]     |                                ---    ^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                |      |             |
[INFO] [stdout]     |                                |      |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |      |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                |      this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                                |      up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `msg` calls a custom destructor
[INFO] [stdout]     |                                `msg` will be dropped later as of Edition 2024
[INFO] [stdout]  43 |                     match msg {
[INFO] [stdout]  44 |                         utils::Message::Sent(msg) => {
[INFO] [stdout]     |                                              ---
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  45 |                             if let Some(decoder) = &decoder {
[INFO] [stdout]  46 |                                 decoder.lock().await.feed_sent(&msg);
[INFO] [stdout]     |                                 --------------------
[INFO] [stdout]     |                                 |              |
[INFO] [stdout]     |                                 |              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                 |              `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  52 |                         utils::Message::Received(msg) => {
[INFO] [stdout]     |                                                  ---
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                                  `#5` will be dropped later as of Edition 2024
[INFO] [stdout]  53 |                             if let Some(decoder) = &decoder {
[INFO] [stdout]  54 |                                 decoder.lock().await.feed_recv(&msg);
[INFO] [stdout]     |                                 --------------------
[INFO] [stdout]     |                                 |              |
[INFO] [stdout]     |                                 |              this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                 |              `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                 `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tcp_server.rs:86:37
[INFO] [stdout]     |
[INFO] [stdout]  84 |             while let Some(frame) = stream.next().await {
[INFO] [stdout]     |                            -----                  -----
[INFO] [stdout]     |                            |                      |
[INFO] [stdout]     |                            |                      this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |                      `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            `frame` calls a custom destructor
[INFO] [stdout]     |                            `frame` will be dropped later as of Edition 2024
[INFO] [stdout]  85 |                 if let Ok(frame) = frame {
[INFO] [stdout]  86 |                     if let Err(e) = stream_tx.send(frame) {
[INFO] [stdout]     |                                -    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                |    |
[INFO] [stdout]     |                                |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                |    up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `e` calls a custom destructor
[INFO] [stdout]     |                                `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  89 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `frame` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]     = note: `--force-warn tail-expr-drop-order` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tcp_server.rs:84:37
[INFO] [stdout]     |
[INFO] [stdout]  84 |             while let Some(frame) = stream.next().await {
[INFO] [stdout]     |                            -----    ^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                            |        |             |
[INFO] [stdout]     |                            |        |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |        |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |        this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |        up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `frame` calls a custom destructor
[INFO] [stdout]     |                            `frame` will be dropped later as of Edition 2024
[INFO] [stdout]  85 |                 if let Ok(frame) = frame {
[INFO] [stdout]  86 |                     if let Err(e) = stream_tx.send(frame) {
[INFO] [stdout]     |                                -
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                `e` calls a custom destructor
[INFO] [stdout]     |                                `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  90 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `frame` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/tcp_server.rs:100:37
[INFO] [stdout]     |
[INFO] [stdout] 100 |             while let Some(frame) = sink_rx.next().await {
[INFO] [stdout]     |                                     ^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                     |              |
[INFO] [stdout]     |                                     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                     |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                     this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                     up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 101 |                 sink.send(frame).await?;
[INFO] [stdout]     |                 -----------------------
[INFO] [stdout]     |                 |                |
[INFO] [stdout]     |                 |                this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 |                `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] 102 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/multiplexer.rs:107:16
[INFO] [stdout]     |
[INFO] [stdout] 103 |             let mut writer = this.write.lock().await;
[INFO] [stdout]     |                 ----------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `writer` calls a custom destructor
[INFO] [stdout]     |                 `writer` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout] 107 |             rx.await.map_err(|_| MiniDSPError::TransportClosed)?
[INFO] [stdout]     |                ^^^^^
[INFO] [stdout]     |                |
[INFO] [stdout]     |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] 108 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.19/src/oneshot.rs:478:1
[INFO] [stdout]     |
[INFO] [stdout] 478 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `writer` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/mock/mod.rs:80:35
[INFO] [stdout]     |
[INFO] [stdout]  80 |         while let Some(command) = commands_rx.next().await {
[INFO] [stdout]     |                        -------    ^^^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                        |          |                  |
[INFO] [stdout]     |                        |          |                  this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |          |                  `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |          this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                        |          up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        `command` calls a custom destructor
[INFO] [stdout]     |                        `command` will be dropped later as of Edition 2024
[INFO] [stdout]  81 |             let mut device = device.lock().await;
[INFO] [stdout]     |                 ----------   -------------------
[INFO] [stdout]     |                 |            |             |
[INFO] [stdout]     |                 |            |             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                 |            |             `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 |            `__awaitee` calls a custom destructor
[INFO] [stdout]     |                 |            `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                 `device` calls a custom destructor
[INFO] [stdout]     |                 `device` will be dropped later as of Edition 2024
[INFO] [stdout]  82 |             let response = device.execute(&command);
[INFO] [stdout]     |                 --------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 `response` calls a custom destructor
[INFO] [stdout]     |                 `response` will be dropped later as of Edition 2024
[INFO] [stdout]  83 |             if let Some(duration) = device.response_delay {
[INFO] [stdout]  84 |                 tokio::time::sleep(duration).await;
[INFO] [stdout]     |                 ----------------------------------
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout]  85 |             }
[INFO] [stdout]  86 |             responses_tx.send(response).await.unwrap();
[INFO] [stdout]     |             ---------------------------------
[INFO] [stdout]     |             |                           |
[INFO] [stdout]     |             |                           this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |             |                           `#5` will be dropped later as of Edition 2024
[INFO] [stdout]     |             this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |             `#4` will be dropped later as of Edition 2024
[INFO] [stdout]  87 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `command` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `device` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `response` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/time/driver/entry.rs:622:1
[INFO] [stdout]     |
[INFO] [stdout] 622 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/client.rs:39:14
[INFO] [stdout]     |
[INFO] [stdout]  34 |         let mut svc = ServiceBuilder::new()
[INFO] [stdout]     |             -------
[INFO] [stdout]     |             |
[INFO] [stdout]     |             `svc` calls a custom destructor
[INFO] [stdout]     |             `svc` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  39 |             .await
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout]     |              |
[INFO] [stdout]     |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |              up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  53 |     }
[INFO] [stdout]     |     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/time/driver/entry.rs:622:1
[INFO] [stdout]     |
[INFO] [stdout] 622 | impl Drop for TimerEntry {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `svc` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]     --> src/transport/multiplexer.rs:222:33
[INFO] [stdout]      |
[INFO] [stdout]  222 |         let (resp1, resp2, _) = futures_util::join!(resp1, resp2, answer);
[INFO] [stdout]      |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]      |                                 |
[INFO] [stdout]      |                                 this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]      |                                 up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]      |                                 this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]      |                                 `#1` will be dropped later as of Edition 2024
[INFO] [stdout]      |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]      |
[INFO] [stdout]  565 | impl Drop for Error {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]      |
[INFO] [stdout]  512 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.19/src/mpsc/mod.rs:939:1
[INFO] [stdout]      |
[INFO] [stdout]  939 | impl<T> Drop for BoundedSenderInner<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.19/src/mpsc/mod.rs:1080:1
[INFO] [stdout]      |
[INFO] [stdout] 1080 | impl<T> Drop for Receiver<T> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]      |
[INFO] [stdout]  565 | impl Drop for Error {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]      |
[INFO] [stdout]  512 | impl Drop for Bytes {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]      = warning: this changes meaning in Rust 2024
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout]      = note: this warning originates in the macro `futures_util::join` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/hub.rs:55:45
[INFO] [stdout]     |
[INFO] [stdout]  52 |                 while let Some(frame) = device_rx.next().await {
[INFO] [stdout]     |                                -----                     -----
[INFO] [stdout]     |                                |                         |
[INFO] [stdout]     |                                |                         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |                         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                `frame` calls a custom destructor
[INFO] [stdout]     |                                `frame` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |                             if let Err(e) = read_tx.send(frame) {
[INFO] [stdout]     |                                        -    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                        |    |
[INFO] [stdout]     |                                        |    this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                        |    up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                        `e` calls a custom destructor
[INFO] [stdout]     |                                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  60 |                         }
[INFO] [stdout]     |                         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `frame` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/hub.rs:52:41
[INFO] [stdout]     |
[INFO] [stdout]  52 |                 while let Some(frame) = device_rx.next().await {
[INFO] [stdout]     |                                -----    ^^^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                |        |                |
[INFO] [stdout]     |                                |        |                this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |        |                `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                |        this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                |        up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `frame` calls a custom destructor
[INFO] [stdout]     |                                `frame` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  55 |                             if let Err(e) = read_tx.send(frame) {
[INFO] [stdout]     |                                        -
[INFO] [stdout]     |                                        |
[INFO] [stdout]     |                                        `e` calls a custom destructor
[INFO] [stdout]     |                                        `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 |                         Err(e) => {
[INFO] [stdout]     |                             -
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                             `#2` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  67 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#3` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#1` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `frame` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `frame` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/transport/hub.rs:76:45
[INFO] [stdout]     |
[INFO] [stdout]  76 |                     while let Some(frame) = send_rx.next().await {
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                             |              |
[INFO] [stdout]     |                                             |              this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                             |              `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                             this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                             up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]  77 |                         let res = device_tx.send(frame).await;
[INFO] [stdout]     |                             ---   ---------------------------
[INFO] [stdout]     |                             |     |                     |
[INFO] [stdout]     |                             |     |                     this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                             |     |                     `#2` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             |     `__awaitee` calls a custom destructor
[INFO] [stdout]     |                             |     `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout]     |                             `res` calls a custom destructor
[INFO] [stdout]     |                             `res` will be dropped later as of Edition 2024
[INFO] [stdout]  78 |                         if let Err(e) = res {
[INFO] [stdout]     |                                    -
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    `e` calls a custom destructor
[INFO] [stdout]     |                                    `e` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  82 |                     }
[INFO] [stdout]     |                     - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `res` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `res` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `__awaitee` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#2` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.52/src/error.rs:565:1
[INFO] [stdout]     |
[INFO] [stdout] 565 | impl Drop for Error {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `e` may invoke a custom destructor because it contains a trait object
[INFO] [stdout] note: `e` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating src/bin/minidsp/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/utils/recorder.rs:56:35
[INFO] [stdout]     |
[INFO] [stdout]  56 |             while let Some(msg) = rx.next().await {
[INFO] [stdout]     |                            ---    ^^^^^^^^^^-----
[INFO] [stdout]     |                            |      |         |
[INFO] [stdout]     |                            |      |         this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                            |      |         `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                            |      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                            |      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                            `msg` calls a custom destructor
[INFO] [stdout]     |                            `msg` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  60 |             }
[INFO] [stdout]     |             - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/utils/recorder.rs:112:31
[INFO] [stdout]     |
[INFO] [stdout] 112 |         while let Some(msg) = x.next().await {
[INFO] [stdout]     |                        ---    ^^^^^^^^^-----
[INFO] [stdout]     |                        |      |        |
[INFO] [stdout]     |                        |      |        this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                        |      |        `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                        |      this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                        |      up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                        `msg` calls a custom destructor
[INFO] [stdout]     |                        `msg` will be dropped later as of Edition 2024
[INFO] [stdout] 113 |             println!("{:02x?}", msg);
[INFO] [stdout] 114 |         }
[INFO] [stdout]     |         - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: relative drop order changing in Rust 2024
[INFO] [stdout]    --> src/logging.rs:42:39
[INFO] [stdout]     |
[INFO] [stdout]  42 |                 while let Some(msg) = log_rx.next().await {
[INFO] [stdout]     |                                ---    ^^^^^^^^^^^^^^-----
[INFO] [stdout]     |                                |      |             |
[INFO] [stdout]     |                                |      |             this value will be stored in a temporary; let us call it `#1`
[INFO] [stdout]     |                                |      |             `#1` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                |      this value will be stored in a temporary; let us call it `#9`
[INFO] [stdout]     |                                |      up until Edition 2021 `#9` is dropped last but will be dropped earlier in Edition 2024
[INFO] [stdout]     |                                `msg` calls a custom destructor
[INFO] [stdout]     |                                `msg` will be dropped later as of Edition 2024
[INFO] [stdout]  43 |                     match msg {
[INFO] [stdout]  44 |                         utils::Message::Sent(msg) => {
[INFO] [stdout]     |                                              ---
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              this value will be stored in a temporary; let us call it `#2`
[INFO] [stdout]     |                                              `#2` will be dropped later as of Edition 2024
[INFO] [stdout]  45 |                             if let Some(decoder) = &decoder {
[INFO] [stdout]  46 |                                 decoder.lock().await.feed_sent(&msg);
[INFO] [stdout]     |                                 --------------------
[INFO] [stdout]     |                                 |              |
[INFO] [stdout]     |                                 |              this value will be stored in a temporary; let us call it `#4`
[INFO] [stdout]     |                                 |              `#4` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#3`
[INFO] [stdout]     |                                 `#3` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 `__awaitee` calls a custom destructor
[INFO] [stdout]     |                                 `__awaitee` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  52 |                         utils::Message::Received(msg) => {
[INFO] [stdout]     |                                                  ---
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this value will be stored in a temporary; let us call it `#5`
[INFO] [stdout]     |                                                  `#5` will be dropped later as of Edition 2024
[INFO] [stdout]  53 |                             if let Some(decoder) = &decoder {
[INFO] [stdout]  54 |                                 decoder.lock().await.feed_recv(&msg);
[INFO] [stdout]     |                                 --------------------
[INFO] [stdout]     |                                 |              |
[INFO] [stdout]     |                                 |              this value will be stored in a temporary; let us call it `#8`
[INFO] [stdout]     |                                 |              `#8` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#6`
[INFO] [stdout]     |                                 `#6` will be dropped later as of Edition 2024
[INFO] [stdout]     |                                 this value will be stored in a temporary; let us call it `#7`
[INFO] [stdout]     |                                 `#7` will be dropped later as of Edition 2024
[INFO] [stdout] ...
[INFO] [stdout]  61 |                 }
[INFO] [stdout]     |                 - now the temporary value is dropped here, before the local variables in the block or statement
[INFO] [stdout]     |
[INFO] [stdout] note: `#9` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#1` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `msg` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#2` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#3` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#4` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#5` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.1.0/src/bytes.rs:512:1
[INFO] [stdout]     |
[INFO] [stdout] 512 | impl Drop for Bytes {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#6` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] note: `#8` invokes this custom destructor
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.15.0/src/sync/mutex.rs:759:1
[INFO] [stdout]     |
[INFO] [stdout] 759 | impl<T: ?Sized> Drop for MutexGuard<'_, T> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages
[INFO] [stdout]     = warning: this changes meaning in Rust 2024
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating tests/m2x4hd.rs from 2021 edition to 2024
[INFO] [stderr]        Fixed tests/test_utils/mod.rs (3 fixes)
[INFO] [stderr]    Migrating tests/m4x10hd.rs from 2021 edition to 2024
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 58.11s
[INFO] [stderr] crater-edition-check: minidsp v0.1.4 (/opt/rustwide/workdir) updating edition from 2021 to 2024
[INFO] [stderr] error: failed to parse manifest at `/opt/rustwide/workdir/Cargo.toml`
[INFO] [stderr] 
[INFO] [stderr] Caused by:
[INFO] [stderr]   `default_features` is unsupported as of the 2024 edition; instead use `default-features`
[INFO] [stderr]   (in the `hidapi` dependency)
[INFO] running `Command { std: "docker" "inspect" "b987106050d1e583ad6f4387989cf2bab871d2b61473f5d90c426fb6f7697c76", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b987106050d1e583ad6f4387989cf2bab871d2b61473f5d90c426fb6f7697c76", kill_on_drop: false }`
[INFO] [stdout] b987106050d1e583ad6f4387989cf2bab871d2b61473f5d90c426fb6f7697c76
